package com.qf.mybatis03.service.impl;

import com.qf.mybatis03.dao.BookDao;
import com.qf.mybatis03.entity.Book;
import com.qf.mybatis03.service.BookService;
import com.qf.mybatis03.utils.MybatisUtils;
import com.qf.mybatis03.utils.Mycache;

import javax.jnlp.BasicService;

public class BookServiceImpl implements BookService {
    public static final String prfix = "book";
    @Override
    public Book getBookById(Integer id) {
        // 1. 检查本地缓存中是否保存了 对应id的book数据，如果有，则直接返回数据

        String key = prfix+":"+id;

        final Book book = (Book) Mycache.cache.get(key);
        if (book!=null){  // 缓存命中
            return book;
        }
        // 2. 如果没有，再去查询数据库表，获得对应id的数据
        final BookDao bookDao = MybatisUtils.getMapper(BookDao.class);
        final Book dbBook = bookDao.getBookById(id);

        // 3. 更新缓存中的数据
        Mycache.cache.put(key,dbBook);

        return dbBook;
    }

}
